package com.yc.sole.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.sole.common.enums.TrueOrFalse;
import jakarta.persistence.*;
import lombok.Data;

/**
 * 对象
 *
 * @author yizuomin
 * @date 2023-04-01
 **/
@Data
@Entity
@Table(name = "sys_log")
@TableName(value = "sys_log")
public class Log {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    /**
     * ip地址
     */
    @Column(columnDefinition = "VARCHAR(50) NOT NULL COMMENT 'ip地址'")
    private String ip;
    /**
     * 地址
     */
    @Column(columnDefinition = "VARCHAR(255) COMMENT 'ip归属地信息'")
    private String address;
    /**
     * 操作用户id
     */
    @Column(columnDefinition = "BIGINT NOT NULL COMMENT '操作用户id'")
    private Long userId;
    /**
     * 操作用户名
     */
    @Column(columnDefinition = "VARCHAR(50) NOT NULL COMMENT '操作用户名'")
    private String username;
    /**
     * 请求uri
     */
    @Column(columnDefinition = "VARCHAR(255) NOT NULL COMMENT '请求uri'")
    private String uri;
    /**
     * 方法名
     */
    @Column(columnDefinition = "VARCHAR(50) NOT NULL COMMENT '方法名'")
    private String methodName;
    /**
     * 请求时间
     */
    @Column(columnDefinition = "VARCHAR(20) NOT NULL COMMENT '请求时间'")
    private String requestTime;
    /**
     * 执行耗时
     */
    @Column(columnDefinition = "BIGINT NOT NULL COMMENT '执行耗时'")
    private Long executionTime;
    /**
     * 是否出现异常 0否 1是
     */
    @Column(columnDefinition = "TINYINT NOT NULL COMMENT '是否出现异常 0否 1是'")
    private TrueOrFalse errorFlag;
    /**
     * 请求参数
     */
    @Column(columnDefinition = "VARCHAR(1000) COMMENT '请求参数'")
    private String request;
    /**
     * 异常信息
     */
    @Column(columnDefinition = "VARCHAR(3000) COMMENT '异常信息'")
    private String errorMessage;

}
